-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change default max-transaction-time #1655
Conversation
…SEGFAULT and deadlock.
…eship comparison.
… of three_queue_executor. Simplifies logic fixes issues with previous approach. Also add some poll() calls to make sure queues have latest tasks to execute.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice change, try as I might I couldn't find anything wrong with it!
libraries/custom_appbase/include/eosio/chain/exec_pri_queue.hpp
Outdated
Show resolved
Hide resolved
// as tasks will never execute. User is responsible for not queueing | ||
// read_exclusive tasks if no read-only thread pool is available. | ||
}; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can show an example of what read_only queue and read_exclusive queue store.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mean add a comment that says that read_exclusive
is currently only for read-only trx processing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
max-transaction-time
changed from 30ms to 499ms.max-transaction-time
config setting and use the default. Settingmax-transaction-time
value to be greater than the on-chain consensus valuemax_transaction_cpu_usage
means the on-chain value is the limiting factor. This allows the value to be set universally for all nodes by changing the on-chain consensus value ofmax_transaction_cpu_usage
. Currently this is set to 150ms on EOS Mainnet. https://bloks.io/account/eosio?loadContract=true&tab=Tables&account=eosio&scope=eosio&limit=100&table=globalread-only-threads
option.max-transaction-time
, read-only transactions are effectively limited byread-only-read-window-time-us
because it is less thanmax-transaction-time
. Since, long-running read-only transactions are desired, they have been moved to run exclusively on read-only threads. A node that is not configured withread-only-threads
greater than0
will immediately fail any read-only transactions with errorunsupported_feature: read-only transactions execution not enabled on API node. Set read-only-threads > 0
.producer_plugin
shutdown which properly stops the read-only thread-pool. This fix should be back-ported to4.0.x
.Resolves #1639